package com.addbrick.websocket.pojo.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;


/**
 * websocket客户端-接收端-返回参数
 * @author shiliuyinzhen
 */
@Data
@AllArgsConstructor
@Builder
public class SendMsgVO implements Serializable {

    private static final long serialVersionUID = -9051438901021877148L;

    /** 消息id */
    private String id;

    /** 消息标题 */
    private String title;

    /**
     * 发送人用户Id (来源Id,上线为上线线人的用户Id)
     */
    private String senderId;

    /**
     * 发送人用户名 (上下线为上线线人的用户名)
     */
    private String senderName;

    /**
     * 接收人用户Id (目标ID,逗号分隔) (所有人使用-ALL,包括自己在内也能接收)
     */
    private String getterId;

    /** 消息类型 */
    private Integer typeId;

    /**
     * 发送内容(text/json)
     */
    private String content;

    /**
     * 扩展消息字段(text/json)
     */
    private String extras;

    /**
     * 当前在线人数
     */
    private Integer onlineNum;

    /**
     * 消息创建时间(YYYY-MM-DD )
     */
    private String createTime;

    /** 消息状态 */
    private Integer status;

    /** 请求参数 */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Map<String, Object> params;

    public SendMsgVO() {
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        this.createTime = df.format(LocalDateTime.now());
    }
}
